/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			pgguider.h
  \date			Aug 2012
  \author		TNick

  \brief		Contains the definition for Guider class


*//*


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Please read COPYING and README files in root folder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
#ifndef __PGGUIDER_INC__
#define __PGGUIDER_INC__
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

#include	<cpg/cpg.h>
#include	<control/guider.h>

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  CLASS    --------------------------------------------------------------- */

namespace	cpg		{

class	PgSpace;

/**
*	@brief	This class is a base for all guiders
*/
class CPGSHARED_EXPORT Guider		: public BBlocks::Guider		{
	BBM_TRACK( Guider );

	//
	//
	//
	//
	/*  DEFINITIONS    ----------------------------------------------------- */

	/*  DEFINITIONS    ===================================================== */
	//
	//
	//
	//
	/*  DATA    ------------------------------------------------------------ */

private:

	/**
	*	@brief	the space
	*/
	PgSpace *			space_;


	/*  DATA    ============================================================ */
	//
	//
	//
	//
	/*  FUNCTIONS    ------------------------------------------------------- */


public:


	/**
	*	@brief	constructor;
	*/
	Guider					( PgSpace * spc = NULL );


protected:


	/**
	*	@brief	destructor;
	*/
	virtual					~Guider				( void );



	/* ******************************************************************* */
	/** @name 	Internals                                                  */
	/* ******************************************************************* */
	///@{

public:


	/**
	*	@brief	the space that is associated with this Guider
	*
	*	@return	NULL if the Guider is associated with the CpgLibrary unique instance
	*/
	inline PgSpace *				space			( void )
	{ return space_; }


	///@}
	/* ******************************************************************* */


	/*  FUNCTIONS    ======================================================= */
	//
	//
	//
	//

};	/*	class Guider	*/

/*  CLASS    =============================================================== */
//
//
//
//

}	//	namespace	cpg

#endif // __PGGUIDER_INC__
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
